chickeninvadersfandomcom-20200214-history
Ultra VGA Engine
''Ultra VGA Engine ''is a graphics library that's been powering all of InterAction studios' games except the oldest ones. History ''VGA Engine'' Official name: VGA Engine for Pascal The history of UVE traces back to the mid-90's when the first iteration of it was made. It was called the VGA Engine, which was made for the Pascal and worked only on the DOS operating system. This engine was inspired by another one from the DOS days, called ANIVGA. Other versions of this iteration followed suit, with VGA Engine 2 and VGA Engine 3. The file formats used here were .IAV for sound, .IAS for sprites, .IAL for libraries , .IAB for backgrounds , .PAL for palettes and .IAW for the main WAD (VENGINE2.IAW for VGA Engine 2). The only game confirmed to have been made on those iterations of the engine is BattleTank. Adventures of Mrs. Piggly, Knights and Lords, Jasna, Doom Kombat, and Blogbash might've been also made on these. ''UVE32'' Official name: Ultra VGA Engine 32-bit The next major upgrade came in form of Ultra VGA Engine 32-bit in 1995. As for its name, the "Ultra" was added in so that it's libraries are distinguished from its precursors, the VGA Engines. It was still in Pascal and for DOS, but now it was rewritten purely from scratch, and was not based on any existing library. It was able to support 32 bit operations, even though they weren't utilized in the games made on it because of the compiler. The most important thing about this iteration of UVE is that it was the only one to be released publicly, with a link here. It was released in two versions - the shareware one and the registered one. The shareware one had some of its features stripped, and was only usable for 21 days before you had to buy the registered version. The file formats used here were .VOC for sound, .UVS for sprites, .UVL for libraries , .PCX for backgrounds , .PAL for palettes and .UVW for WADs and the main WAD (UVE32.UVW).The resolution of the games was always 320x200, which is the default DOS resolution. The last known version of UVE32 is version 1.40, which has been released around January 1997. Games confirmed to have been made using UVE32 are Radar Wars Arcade, Cherrymania 2, Cobra, Cobra 2, M99, and F16. There also has been a demo program showing off the capabilities of this iteration. You can see the footage of it here. ''UVE++'' Official name: Ultra VGA Engine for C++ This iteration was made around 1997. It was written in C++ instead of Pascal, but it still was only for DOS. It was both conceptually and technically superior, however it wasn't used for many games, aside from a certain interesting thing - an early "quick & dirty" version of Chicken Invaders. Since then, the game was remade on UVE's next iteration. ''UveDX'' Official name: Ultra VGA Engine for DirectX 7.0 Being introduced around 1999, Ultra VGA Engine DX might be the most known of the earlier iterations to us, since it has been used at release for the first two Chicken Invaders games, the first Island Wars!, and the ill-fated Piggly 2. It was the first iteration to move from DOS to Windows, and the first one to work on DirectX (starting with 6.0 and 6.1, later on supported 7.0). The resolution has also been upgraded to 640x480, and the engine now stored sounds as wave form audio format files, and sprites and backgrounds as bitmaps. Other than that, it was fundamentally the same thing as the previous iterations but with DirectX's advantages. The Debug Modes in earlier builds of UveDX were only sometimes included (Chicken Invaders had it but Island Wars! didn't), and they were triggered through pressing F9 and F10 at once, while later on they had to be enabled through the config file. ''UveDX8'' Official name: Ultra VGA Engine for DirectX 8.1 Debuting with the release of Island Wars 2 in late 2004, this version was a major upgrade from UveDX, being a complete rewrite for Visual Studio and DirectX 8.0. It also used the "looks-like-2d-but-it's-infact-3d" technique, as in everything was rendered as 3D, but it looked like 2D. Since this version of the engine, the sounds have been stored as OGG Vorbis files while the sprites were stored as uncompressed TGA files. Since stuff could be rotated, scaled and bent in 3D, the games no longer had many sprites. The fact that multiple animation frames were able to be stored in one file instead of multiple also contributed to this. To configure each sprite, the game uses an .ini.preload file along with the texture. It stores information of the amount of skins the texture has and the following values for narrowing down what the engine should render - top origin, left origin, width, height, X offset and Y offset. Another thing that has been changed is that the native resolution of the games was upgraded to 800x600. Games made using this engine at release include Island Wars 2, Loco, Smileyville, Piggly and Revenge of the Yolk. At first the debug modes were triggered like in UveDX, but with the release of Revenge of the Yolk, you now had to put in a specific debug code to make it work. As the debug codes are removed from public releases, it's impossible to do it through that method. An unfinished Debug Console was also included in this version. ''UveXX'' Official name: Ultra VGA Engine for OpenGL Debuting in 2009 with Christmas Eve Crisis, this version of UVE was the only one from the newer versions since UveDX to use OpenGL instead of DirectX. It's also the first one to be ported over to Mac and Linux. In the engine, a major change was made to the .ini.preload files. UveDX8 stored the texture info as plain text, while this version stores them as bytes. Those files now consist of a 20 byte header, which includes five values (one of them is the amount of skins in the image), and one/multiple 24 bytes encoding the skins the same way as UveDX8, with six values. Even though this version was able to handle bigger resolutions as proven by the remastered edition of The Next Wave's native resolution being 1280x960, most of the games still used 800x600. Other games made using this engine at release include Ultimate Omelette, and the remastered edition of The Next Wave. The debug console was still included in this version until the release of Ultimate Omelette, where it was removed. ''UveUDX'' Official name: Ultra VGA Engine for DirectX 8.1 Ultra Edition Having surfaced in 2013, this iteration of UVE seems like it is a rollback to UveDX8 as it's using DirectX 8.0 and it has been only used at release for Cluck of the Dark Side. However, this version also got some improvements with the Ultra features, such as double-resolution graphics (making the native resolution of iA's games now 1600x960, with the ratio 5:3), instant loading, widescreen support, touchscreen support, better navigation on menus, Unicode support and smaller stuff like a mute option in-game, and the in-game languages being able to be changed without having to restart the game. This iteration of the engine was also the first one to include integration with Valve's Steam platform for versions of InterAction studios' games on it. ''UveUDX9'' Official name: Ultra VGA Engine for DirectX 9.0c Ultra Edition Introduced in 2015, this iteration can be basically considered the same thing as UveUDX because of this just being a recompilation of it in DirectX 9.0c since 8.1 became obsolete. No new games were made for it. ''Uve++11'' Official name: Ultra VGA Engine for C++11 Introduced in 2018. It's been used at release for Universe. This version was a necessary update to the engine to support multi-threading and TCP networking required by that game, as previous versions of UVE only use single thread and UDP. The native resolution of that game has been bumped up to 1920x1080, with the screen ratio changed from 5:3 to 16:9. Another important change to the engine comes with the textures. They are still stored as .tga, but their headers are changed to only preserve the width, height and the amount of bits in the image (all as four bytes instead of two for unknown reasons). Textures are little-endian instead of big-endian. iA also started using 8-bit depth textures (containing the alpha channel only) to make the file size smaller. Ports Ultra VGA Engine has been also ported over to numerous platforms, each with their own branch, such as UveAndroid, UveiOS, UveWP (for Windows Phones), UveFlash, UveWin8 (for the Windows Store) and so on. Some of them also store data in different formats, for example UveAndroid uses a different format for textures. Technical information Ultra VGA Engine since its earliest iteration has been a graphical API and game engine that utilizes the SVGA graphics mode. It was based on various engines including Turbo Pascal, Visual Studio, OpenGL, and various versions of DirectX. The newest iteration uses DirectX 9.0c. The engine uses the uncompressed Truevision TGA format to store its sprites (because it compresses better than PNGs in the installers and because they are lossless), and the OGG Vorbis format to store sounds. JPEGs are also used for stuff such as backgrounds and textures for 3D models. Although the Ultra VGA Engine has capacity for using 3D models, InterAction studios hardly ever utilizes them in their games. They most often see their use when it comes to doing special effects, such as the water effect in the Epsilon Thalassus chapter in Cluck of the Dark Side, and for ground, which has been so far used for Cluck for the Dark Side, Piggly and Christmas Eve Crisis. Although 3D models hardly ever see their use, 3D still has its benefits. With it, sprites are allowed to be scaled, bent and rotated on the fly. ''Particle Flux Technology'' Particle Flux Technology is a sprite-based graphics API, having been first used for UVE32. From what we know, it was used in Chicken Invaders, The Next Wave and Island Wars!. It was used for the sprites and animations of explosions and bullets. ''Arcade Engine'' Note: No logo was made for it that is still available. Arcade Engine is an add-on for UveDX which can do special effects like multi-sprites, enemy damage feedback and maximum frame rate under all conditions to recreate the arcade experience. It was planned to be used for the unreleased Piggly 2, though the only time it has seen usage was with The Next Wave. ''NatUVE'' NatUVE is a graphics API used for vegetation deformation and making realistic-looking plants. It has been used in many games, like Island Wars 2 and Piggly, and possibly Cluck of the Dark Side. Category:Technical